Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feat/posttag migration #230

Merged
merged 15 commits into from
Nov 2, 2024
Merged

Feat/posttag migration #230

merged 15 commits into from
Nov 2, 2024

Conversation

juanzeen
Copy link
Contributor

Descrição

Criação da tabela/schema que permite o relacionamento entre os posts e tags nas notícias.

Pontos para atenção

  • Optei por criar uma migration e um schema para possibilitar o relacionamento, mas não tenho certeza se era necessário o schema.

Possui migrations?

  • Possui a migration: create_post_tags

@juanzeen juanzeen self-assigned this Oct 10, 2024
@juanzeen juanzeen requested review from zoedsoupe and SoraAsc October 10, 2024 00:51
Copy link
Member

@zoedsoupe zoedsoupe left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

boa! mandou bem! porém eu gostaria de explicar melhor uma coisa: no ecto, você consegue fazer um relacionamento NxN via "join table" ou "join schema"

"join table" seria exatamente como você fez:

  • criar uma tabela no banco NxN (post_id e tag_id)
  • e usar a diretiva many_to_many e passar a opção join_through: "posts_tags"

essa opção é legal porque n precisamos lidar com um schema (aka um struct) em memória e deixamos que o banco lide com esse relacionamento!

a outra opção, "join schema", costuma ser vantajosa quando precisamos lidar com campos extras no relacionamento NxN ou precisamos modificar o schema em memória antes de mandar pro banco. nessa opção, a gente define um schema, que nem você fez com o PostsTags e usa ele como fonte da verdade, interagindo indiretamente com o banco, como se fosse um schema/tabela comum, com changeset, CRUD e etc.

um exemplo disso é no contexto de cotações de pescado onde a tabela NxN possui mais campos na relação além do ID das entidades, mas nesse caso de Posts e Tags, n precisamos de campos extras, então o schema PostsTags se torna dispensável.

creio que você acabou misturando as duas opções de implementa many to many, então sugiro que remova o schema PostsTags, já que n iremos utilizar ele e vamos deixar para que o banco de dados lide com o relacionamento, ok?

dito isso, por último, parece que vc adicionou acidentalmente um arquivo vazio chamado git no commit, peço que remova por favor

@juanzeen
Copy link
Contributor Author

Tinha ficado um pouco perdido nessa parte dos join, mas agora tá muito mais claro, obrigado demaisss!!!.

Eu mudei o nome da migration pra deixar bem padronizado, já que a das tags também é blog_tags.

No mais acho que está tudo certinho, só que o pré-push ainda não está funcionando, sempre que vou dar push ele pula os git hooks.

Copy link

@aripiprazole aripiprazole left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

boa, mandou bem! (zoey aqui)

@zoedsoupe zoedsoupe merged commit a98d487 into main Nov 2, 2024
4 checks passed
@zoedsoupe zoedsoupe deleted the feat/posttag-migration branch November 2, 2024 17:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants